1. Field of the Invention
This invention relates to redundant data storage, and particularly to tracking and resolving differences in write data computing infrastructure using a dual-node controller in a data mirroring system.
2. Description of the Related Art
It is common for data systems of today to use redundant storage. This provides users with high integrity data and great system reliability. However, designs for redundant storage systems are often complicated. Increased demands for performance continue to call for advancements in the design.
For example, in synchronous remote mirroring it is crucial to keep track of differences between the primary storage system and the secondary storage system, even in the presence of failures. For example, consider the following sequence of events, which illustrate potential issues with present day synchronous remote mirroring.
First, a host (i.e., a processor, or other part of a computing system) writes data designated for track T. A primary storage controller then modifies a cache, P, of the primary storage system. As a part of data mirroring, the primary storage controller starts transferring the data associated with track T to a secondary storage controller. Accordingly, a cache of the secondary storage system is then modified. At this time, the primary storage system crashes, and the data for track T in the primary cache is lost. This occurs prior to actual writing of the data in track T to the primary storage disk. As a result, data in the designated storage location of the primary system differs from the data in the secondary system. To compensate for that—once the primary system is restarted, data is copied from the secondary system to the primary system so as to bring the primary system up to date. If the tracks in which the primary and secondary storage controllers differ are not known, all the data has to be copied.
Unfortunately, it can be forbiddingly expensive to copy all of the secondary system back to the primary system.
Accordingly, what are needed are methods and apparatus for maintaining indications of tracks that are different in the primary system and the secondary system. Preferably, the methods and apparatus account for in flight data, and are persistent (i.e., is capable of surviving a system crash).